package com.alioth;

/**
 * @Author tsj
 * @Date 2023/11/21/19:07
 * 1. 设置堆空间内存大小的参数
 * -Xms 用来设置堆空间（新生区和养老区）初始内存大小
 *      -X 是jvm 的运行参数
 *      ms 是 memory start
 * -Xmx 用来设置堆空间（新生区和养老区）最大内存大小
 *       -X 是jvm 的运行参数
 *        mx 是 memory max
 *
 * 2.默认堆空间的大小
 *    初始内存大小：物理电脑内存大小 / 64
 *    最大内存大小：物理电脑内存大小 / 4
 *
 * 3.手动设置 -Xms60m  -Xmx60m
 *   开发中建议将 初始堆内存和最大 的堆内存设置成相同的值
 *
 * 4.查看参数的设置： 方式一： jps     / jstat -gc 进程id
 *                 方式二： -XX:+PrintGCDetails
 */
public class HeapSpaceInitial {

    public static void main(String[] args) {
        // 返回java虚拟机中的堆内存总量
        long initialMemory = Runtime.getRuntime().totalMemory() / 1024 / 1024;
        // 返回java 虚拟机试图使用的最大堆内存总量
        long maxMemory = Runtime.getRuntime().maxMemory() / 1024 / 1024;

        System.out.println("-Xms :" + initialMemory + "M");
        System.out.println("-Xmx :" + maxMemory + "M");

//        System.out.println("系统内存大小 :" + initialMemory * 64.0 / 1024 + "G" );
//        System.out.println("系统内存大小 :" + maxMemory * 4.0 / 1024 + "G" );
        try {
            Thread.sleep(1000000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}
